<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>JavaScript对象</title>
</head>
<body>
    <script>
        // 数组的定义和使用
        // 数组的定义：
        //1.使用字面量方式创建
        var arr = [1, 2, 3, 4, 5];
        //注意数组中的元素不用相同
        var arr1 = [1, 2, 3, 4, 5, "你好", true, null, undefined];
        //2.使用new关键字创建
        var arr2 = new Array(1, 2, 3, 4, 5);

        //数组的使用：
        //1.使用索引访问数组中的元素
        console.log(arr[0]);//1
        console.log(arr[1]);//2

        //2.增加数组中的元素
        arr[5] = 6;//数组的索引从0开始
        console.log(arr);//[1, 2, 3, 4, 5, 6]
        //使用push方法
        arr.push(7);
        console.log(arr);//[1, 2, 3, 4, 5, 6, 7]
        //获取数组的长度
        console.log(arr.length);//7

        //3.修改数组中的元素
        arr[0] = 100;
        console.log(arr);//[100, 2, 3, 4, 5, 6, 7]

        //4.删除数组中的元素
        //使用splice方法
        arr.splice(0, 1);//从索引0开始，删除1个元素
        console.log(arr);//[2, 3, 4, 5, 6, 7]
        console.log(arr.length);//6
        console.log(arr[0]);//2

        arr.splice(5, 1);//从索引5开始，删除1个元素
        console.log(arr);//[2, 3, 4, 5, 6]
        console.log(arr.length);//5
        console.log(arr[5]);//undefined，因为数组的长度为5，但是索引为5的元素不存在
        
        //5.遍历数组
        for (var i = 0; i < arr.length; i++) {
            console.log(arr[i]);//2, 3, 4, 5, 6
        }
        //6.数组的方法
        //1.数组的拼接
        var arr3 = [1, 2, 3, 4, 5];
        var arr4 = [6, 7, 8, 9, 10];
        var arr5 = arr3.concat(arr4);
        console.log(arr5);//[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
        //2.数组的反转
        var arr6 = [1, 2, 3, 4, 5];
        var arr7 = arr6.reverse();
        console.log(arr7);//[5, 4, 3, 2, 1]
        //3.数组的排序
        var arr8 = [1, 2, 3, 4, 5,10];
        var arr9 = arr8.sort();//排序是从字符串的角度排序的，所以会出现10在1前面的情况
        console.log(arr9);//[1, 10, 2, 3, 4, 5]
        //解决方法：
        var arr9 = arr8.sort(function(a, b) {
            return a - b;
        });
        console.log(arr9);//[1, 2, 3, 4, 5, 10]
        //4.数组的截取
        var arr10 = [1, 2, 3, 4, 5];
        var arr11 = arr10.slice(0, 3);//从索引0开始，截取3个元素
        console.log(arr11);//[1, 2, 3]
        //5.数组的复制
        var arr12 = [1, 2, 3, 4, 5];
        var arr13 = arr12.slice();
        console.log(arr13);//[1, 2, 3, 4, 5]
        //6.数组的查找
        var arr14 = [1, 2, 3, 4, 5];
        var index = arr14.indexOf(3);//查找元素3的索引
        console.log(index);//2
        //7.数组的插入
        var arr15 = [1, 2, 3, 4, 5];
        arr15.splice(2, 1, 6);//从索引2开始，删除1个元素，插入6
        console.log(arr15);//[1, 2, 6, 4, 5]
        //8.数组的删除
        var arr16 = [1, 2, 3, 4, 5];
        arr16.splice(2, 1);//从索引2开始，删除1个元素
        console.log(arr16);//[1, 2, 4, 5]
        //9.数组的遍历
        var arr17 = [1, 2, 3, 4, 5];
        for (var i = 0; i < arr17.length; i++) {
            console.log(arr17[i]);//1, 2, 3, 4, 5
        }
        //10.数组的长度
        var arr18 = [1, 2, 3, 4, 5];
        console.log(arr18.length);//5
        //11.数组的清空
        var arr19 = [1, 2, 3, 4, 5];
        arr19.splice(0, arr19.length);//从索引0开始，删除数组的长度个元素
        console.log(arr19);//[]
        
    </script>
</body>
</html>